package webservices;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;

import classes.Artikal;
import classes.VraceniArtikli;
import dao.DAOFactory;

@Path("/vraceniArtikli")
public class VraceniArtikliResource {
	 @Context
	    UriInfo uriInfo;
	    @Context
	    Request request;
	 
	 
		@Path("/svi")
		@GET
		@Produces(MediaType.APPLICATION_XML)
		public GenericEntity<List<VraceniArtikli>> vratiVraceneArtikle() {
			try {
				DAOFactory.connect();
				List<VraceniArtikli> artikli = DAOFactory.getVraceniArtikliDAO().selectSviVraceniArtikli();
				DAOFactory.disconnect();
				return new GenericEntity<List<VraceniArtikli>>(artikli){};
			} catch (Exception e) {
				e.printStackTrace();
				return null;
			}
		}
		
		@POST
		@Path("vraceniArtikal/obrisi")
		@Consumes(MediaType.APPLICATION_XML)
		@Produces(MediaType.APPLICATION_XML)
		public String obrisiArtikal(@HeaderParam("username")String username, @HeaderParam("password")String password, String sIDArtikal){
			try{
				int idArtikla = Integer.parseInt(sIDArtikal);
			  	DAOFactory.connect();
			  	int i = DAOFactory.getVraceniArtikliDAO().deleteVraceniArtikal(idArtikla);
			  	if (i!=1){
			  		DAOFactory.disconnect();
			  		return Boolean.toString(false);
			  	}
			  	DAOFactory.disconnect();
			  	return Boolean.toString(true);
			}
			catch(Exception e){
				e.printStackTrace();
				return Boolean.toString(false);
			}
		}
		
		@PUT
		@Path("vraceniArtikal/dodaj")
		@Consumes(MediaType.APPLICATION_XML)
		@Produces(MediaType.APPLICATION_XML)
		public int dodajArtikal(@HeaderParam("username")String username, @HeaderParam("password")String password, VraceniArtikli a){
			try{
				DAOFactory.connect();
			  	int i = DAOFactory.getVraceniArtikliDAO().insertArtikal(a);
			  	if (i!=1){
			  		DAOFactory.disconnect();
			  		return 0;
			  	}
			  	DAOFactory.disconnect();
			  	return 1;
			}
			catch(Exception e){
				e.printStackTrace();
				return 0;
			}
		}
}
